import request from '../utils/request'

// 获取房产列表
export function getHouseList(params) {
    return request({
        url: '/house/list?' + params.toString(),
        method: 'get'
    })
}

// 获取热门房产
export function getHotHouses(params) {
    return request({
        url: '/house/hot',
        method: 'get',
        params
    })
}

// 获取最新房产
export function getLatestHouses(params) {
    return request({
        url: '/house/latest',
        method: 'get',
        params
    })
}

// 获取房产详情
export function getHouseDetail(id) {
    if (!id) {
        console.error('getHouseDetail: 无效的房源ID');
        return Promise.reject(new Error('无效的房源ID'));
    }
    
    return request({
        url: `/house/info/${id}`,
        method: 'get'
    });
}

// 搜索房产
export function searchHouse(data) {
    return request({
        url: '/house/search',
        method: 'post',
        data
    })
}

/**
 * 添加房源
 * @param {FormData} data 包含房源信息和图片的FormData对象
 * @returns {Promise} 添加结果
 */
export function addHouse(data) {
    // 调试日志：输出FormData内容
    console.log('提交房源信息...')
    
    // 检查FormData中是否包含lng和lat参数
    if (data instanceof FormData) {
        const lng = data.get('lng')
        const lat = data.get('lat')
        
        console.log('FormData中的经纬度参数:')
        console.log('- lng:', lng, typeof lng)
        console.log('- lat:', lat, typeof lat)
        
        // 遍历并显示所有文本类型参数
        console.log('FormData所有参数:')
        for (let [key, value] of data.entries()) {
            // 只输出文本类型参数，跳过文件
            if (!(value instanceof File)) {
                console.log(`- ${key}: ${value}`)
            }
        }
    }
    
    return request({
        url: '/house/add',
        method: 'post',
        data: data,
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    })
}

// 修改房产
export function updateHouse(data) {
    return request({
        url: '/house',
        method: 'put',
        data
    })
}

// 删除房产
export function deleteHouse(id) {
    return request({
        url: `/house/${id}`,
        method: 'delete'
    })
}

// 收藏/取消收藏房源
export function collectHouse(houseId) {
    return request({
        url: '/house/collect',
        method: 'post',
        data: { houseId }
    })
}

// 取消房源收藏
export function cancelCollectHouse(houseId) {
    return request({
        url: `/house/uncollect/${houseId}`,
        method: 'delete'
    })
}

/**
 * 获取房源图片列表
 * @param {string|number} houseId 房源ID
 * @returns {Promise} 包含图片数据的Promise
 */
export function getHouseImages(houseId) {
    if (!houseId) {
        console.error('getHouseImages: 无效的房源ID');
        return Promise.reject(new Error('无效的房源ID'));
    }
    
    // 尝试其他可能的API路径
    return request({
        url: `/house/image/list/${houseId}`,
        method: 'get'
    }).catch(error => {
        // 如果API不存在，返回空数组而不是报错
        if (error.response && error.response.status === 404) {
            console.warn(`获取房源图片API不存在，房源ID: ${houseId}`);
            return { code: 200, data: [] };
        }
        return Promise.reject(error);
    });
} 